﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using FBS.Framework;
using Uol.PagSeguro.Domain;
using AgileSaude.Business;

namespace AgileSaude.Web
{
    public partial class Confirmacao : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //string transactionId = Request.QueryString["transaction_id"];

            try
            {
                if (Request.HttpMethod == "POST")
                {
                    //string numero = HttpContext.Current.Request.Form["Referencia"];
                    //string StatusTransacao = HttpContext.Current.Request.Form["StatusTransacao"];
                    //string transactionCode = HttpContext.Current.Request.Form["TransacaoID"];
                    //string status;
                    //switch (StatusTransacao)
                    //{
                    //    case "Completo":
                    //        status = "1";
                    //        break;
                    //    case "Aguardando Pagto":
                    //        status = "1";
                    //        break;
                    //    case "Aprovado":
                    //        status = "1";
                    //        break;
                    //    case "Em Análise":
                    //        status = "1";
                    //        break;
                    //    case "Cancelado":
                    //        status = "1";
                    //        break;
                    //    default:
                    //        status = "1";
                    //        break;
                    //}
                    string sForms = HttpContext.Current.Request.Form.ToString();
                    try
                    {
                        Mail email = new Mail();
                        email.CorpoHTML = "POST <br/>" + sForms;
                        email.AdicionarDestinatario(TipoDestinatario.Para, "contato@agilesaude.com.br");
                        email.Assunto = "POST - retorno pagto";
                        email.EnableSsl = false;
                        email.De = new System.Net.Mail.MailAddress("contato@agilesaude.com.br");

                        email.Enviar();
                    }
                    catch { }

                    //o método POST indica que a requisição é o retorno da validação NPI.

                    string Token = "DC4543BC382F48CE865CDEB4FD903245";
                    string Pagina = "https://pagseguro.uol.com.br/pagseguro-ws/checkout/NPI.jhtml";
                    string Dados = sForms + "&Comando=validar" + "&Token=" + Token;

                    System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(Pagina);

                    req.Method = "POST";
                    req.ContentLength = Dados.Length;
                    req.ContentType = "application/x-www-form-urlencoded";

                    System.IO.StreamWriter stOut = new System.IO.StreamWriter(req.GetRequestStream(), System.Text.Encoding.GetEncoding("ISO-8859-1"));
                    stOut.Write(Dados);
                    stOut.Close();

                    System.IO.StreamReader stIn = new System.IO.StreamReader(req.GetResponse().GetResponseStream(), System.Text.Encoding.GetEncoding("ISO-8859-1"));
                    string Result = stIn.ReadToEnd();
                    stIn.Close();

                    if (Result == "VERIFICADO")
                    {
                        //o post foi validado

                        //new PedidoFacade().AtualizaStatus(numero, status, transactionCode);

                    }
                    else if (Result == "FALSO")
                    {
                        //o post nao foi validado
                    }
                    else
                    {
                        //erro na integração com PagSeguro.
                    }
                }
                else if (Request.HttpMethod == "GET")
                {
                    //o método GET indica que a requisição é o retorno do Checkout PagSeguro para o site vendedor.
                    //no término do checkout o usuário é redirecionado para este bloco.

                    //string sForms = HttpContext.Current.Request.Form.ToString();
                    //try
                    //{
                    //    Mail email = new Mail();
                    //    email.CorpoHTML = "GET <br/>" + sForms;
                    //    email.AdicionarDestinatario(TipoDestinatario.Para, "contato@agilesaude.com.br");
                    //    email.Assunto = "GET - retorno pagto";
                    //    email.EnableSsl = false;
                    //    email.De = new System.Net.Mail.MailAddress("contato@agilesaude.com.br");

                    //    email.Enviar();
                    //}
                    //catch { }

                }
            }
            catch (Exception ex)
            {
                Mail email = new Mail();
                email.CorpoHTML = ex.Message;
                if (ex.InnerException != null)
                    email.CorpoHTML += "<br/> " + ex.InnerException.Message;

                email.AdicionarDestinatario(TipoDestinatario.Para, "contato@agilesaude.com.br");
                email.Assunto = "Erro - retorno pagto";
                email.EnableSsl = false;
                email.De = new System.Net.Mail.MailAddress("contato@agilesaude.com.br");

                email.Enviar();
            }

        }
    }
}